package com.aichongbang.acb.service.impl;

import com.aichongbang.acb.mapper.StuffMapper;
import com.aichongbang.acb.po.Store;
import com.aichongbang.acb.mapper.StoreMapper;
import com.aichongbang.acb.po.Stuff;
import com.aichongbang.acb.service.IStoreService;
import com.aichongbang.acb.vo.StoreVO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author acb
 * @since 2021-05-27
 */
@Service("storeService")
public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements IStoreService {


    @Resource
    private StoreMapper storeMapper;
    @Resource
    private StuffMapper stuffMapper;

    @Override
    public List<Store> getAllStores() {
        List<Store> list = storeMapper.getAllStores();
        return list;
    }

    @Override
    public List<StoreVO> getAll() {
        List<Store> storeList = storeMapper.getAll();
        List<StoreVO> storeVOList = new ArrayList<>();
        StoreVO storeVO = new StoreVO();
        for (int i = 0; i < storeList.size(); i++) {
            Store store = storeList.get(i);
            storeVO.setTId(store.getTId());
            storeVO.setTName(store.getTName());
            storeVO.setTLicenseid(store.getTLicenseid());
            storeVO.setTLicenseAvatar(store.getTLicenseAvatar());
            storeVO.setTAddress(store.getTAddress());
            storeVO.setTLegalperson(store.getTLegalperson());
            storeVO.setTType(store.getTType());
            storeVO.setTTel(store.getTTel());
            storeVO.setTSpecial(store.getTSpecial());
            storeVO.setTAvatar(store.getTAvatar());
            storeVO.setTCommission(store.getTCommission());
            storeVO.setTStatus(store.getTStatus());
            storeVO.setTChecker(store.getTChecker());
            storeVO.setTRank(store.getTRank());

            List<Stuff> stuffList = new ArrayList<>();
            for (int j = 0; j < store.getStuffList().size(); j++) {
                Stuff stuff = store.getStuffList().get(j);
                stuffList.add(stuff);
            }
            storeVO.setStuffList(stuffList);
        }
        storeVOList.add(storeVO);
        return storeVOList;
    }

    @Override
    public List<StoreVO> queryStores(Store store) {
        List<Store> storeList = storeMapper.queryStores(store);
        List<StoreVO> storeVOList = new ArrayList<>();
        StoreVO storeVO = new StoreVO();
        for (int i = 0; i < storeList.size(); i++) {
            Store store1 = storeList.get(i);
            storeVO.setTId(store1.getTId());
            storeVO.setTName(store1.getTName());
            storeVO.setTLicenseid(store1.getTLicenseid());
            storeVO.setTLicenseAvatar(store1.getTLicenseAvatar());
            storeVO.setTAddress(store1.getTAddress());
            storeVO.setTLegalperson(store1.getTLegalperson());
            storeVO.setTType(store1.getTType());
            storeVO.setTTel(store1.getTTel());
            storeVO.setTSpecial(store1.getTSpecial());
            storeVO.setTAvatar(store1.getTAvatar());
            storeVO.setTCommission(store1.getTCommission());
            storeVO.setTStatus(store1.getTStatus());
            storeVO.setTChecker(store1.getTChecker());
            storeVO.setTRank(store1.getTRank());

            List<Stuff> stuffList = new ArrayList<>();
            for (int j = 0; j < store1.getStuffList().size(); j++) {
                Stuff stuff = store1.getStuffList().get(j);
                stuffList.add(stuff);
            }
            storeVO.setStuffList(stuffList);
        }
        storeVOList.add(storeVO);
        return storeVOList;
    }

    @Override
    public Store getStoreById(Integer tId) {
        return storeMapper.getStoreById(tId);
    }

    @Override
    public boolean updateStore(Store store) {
        int n = storeMapper.updateById(store);
        if(n > 0) {
            Stuff stuff = new Stuff();
            Integer m = stuffMapper.addStuff(stuff);
            if(m <= 0) {
                System.out.println("添加失败");
            }
        }
        return n > 0 ? true : false;
    }

    @Override
    public boolean deletedStore(Integer tId) {
        int n = storeMapper.deleteById(tId);
        return n > 0 ? true : false;
    }

}
